package cn.com.open.itembank.dto;

import cn.com.open.itembank.common.BaseModel;

/**
 * Created by lucky on 2017/12/11.
 */
public class QuestionCountFilterModel extends BaseModel {
    public QuestionCountFilterModel() {
        this.itemBankId = "";
        this.mandatoryIDs = "";
        this.questionCategoryIDs = "";
        this.chapterIDs = "";
        this.questionTypeID = "";
        this.minDifficulty = 0;
        this.maxDifficulty = 0;
        this.fieldcount = 0;
        this.subjective = 0;
        this.minDuration = 0;
        this.maxDuration = 0;
    }

    /**
     * 题库id
     */
    String itemBankId;

    /**
     * 必选题列表
     */
    String mandatoryIDs;

    /**
     * 试卷应用类别列表
     */
    String questionCategoryIDs;

    /**
     * 章节列表
     */
    String chapterIDs;

    /**
     * 外部题型id
     */
    String questionTypeID;

    /**
     * 最小难度
     */
    float minDifficulty;

    /**
     * 最大难度
     */
    float maxDifficulty;

    /**
     * 子题目个数，用于含有子试题的试题和填空题
     */
    Integer fieldcount;

    /**
     * 主观题搜索范围(仅填空题可用：0：主观；1：客观；2：全部)
     */
    Integer subjective;

    /**
     * 最小音频时长
     */
    Integer minDuration;

    /**
     * 最大音频时长
     */
    Integer maxDuration;

    /**
     * Gets item bank id.
     *
     * @return the item bank id
     */
    public String getItemBankId() {
        return itemBankId;
    }

    /**
     * Sets item bank id.
     *
     * @param itemBankId the item bank id
     */
    public void setItemBankId(String itemBankId) {
        this.itemBankId = itemBankId;
    }

    /**
     * Gets mandatory i ds.
     *
     * @return the mandatory i ds
     */
    public String getMandatoryIDs() {
        return mandatoryIDs;
    }

    /**
     * Sets mandatory i ds.
     *
     * @param mandatoryIDs the mandatory i ds
     */
    public void setMandatoryIDs(String mandatoryIDs) {
        this.mandatoryIDs = mandatoryIDs;
    }

    /**
     * Gets question category i ds.
     *
     * @return the question category i ds
     */
    public String getQuestionCategoryIDs() {
        return questionCategoryIDs;
    }

    /**
     * Sets question category i ds.
     *
     * @param questionCategoryIDs the question category i ds
     */
    public void setQuestionCategoryIDs(String questionCategoryIDs) {
        this.questionCategoryIDs = questionCategoryIDs;
    }

    /**
     * Gets chapter i ds.
     *
     * @return the chapter i ds
     */
    public String getChapterIDs() {
        return chapterIDs;
    }

    /**
     * Sets chapter i ds.
     *
     * @param chapterIDs the chapter i ds
     */
    public void setChapterIDs(String chapterIDs) {
        this.chapterIDs = chapterIDs;
    }

    /**
     * Gets question type id.
     *
     * @return the question type id
     */
    public String getQuestionTypeID() {
        return questionTypeID;
    }

    /**
     * Sets question type id.
     *
     * @param questionTypeID the question type id
     */
    public void setQuestionTypeID(String questionTypeID) {
        this.questionTypeID = questionTypeID;
    }

    /**
     * Gets min difficulty.
     *
     * @return the min difficulty
     */
    public float getMinDifficulty() {
        return minDifficulty;
    }

    /**
     * Sets min difficulty.
     *
     * @param minDifficulty the min difficulty
     */
    public void setMinDifficulty(float minDifficulty) {
        this.minDifficulty = minDifficulty;
    }

    /**
     * Gets max difficulty.
     *
     * @return the max difficulty
     */
    public float getMaxDifficulty() {
        return maxDifficulty;
    }

    /**
     * Sets max difficulty.
     *
     * @param maxDifficulty the max difficulty
     */
    public void setMaxDifficulty(float maxDifficulty) {
        this.maxDifficulty = maxDifficulty;
    }

    /**
     * Gets fieldcount.
     *
     * @return the fieldcount
     */
    public Integer getFieldcount() {
        return fieldcount;
    }

    /**
     * Sets fieldcount.
     *
     * @param fieldcount the fieldcount
     */
    public void setFieldcount(Integer fieldcount) {
        this.fieldcount = fieldcount;
    }

    /**
     * Gets subjective.
     *
     * @return the subjective
     */
    public Integer getSubjective() {
        return subjective;
    }

    /**
     * Sets subjective.
     *
     * @param subjective the subjective
     */
    public void setSubjective(Integer subjective) {
        this.subjective = subjective;
    }

    /**
     * Gets min duration.
     *
     * @return the min duration
     */
    public Integer getMinDuration() {
        return minDuration;
    }

    /**
     * Sets min duration.
     *
     * @param minDuration the min duration
     */
    public void setMinDuration(Integer minDuration) {
        this.minDuration = minDuration;
    }

    /**
     * Gets max duration.
     *
     * @return the max duration
     */
    public Integer getMaxDuration() {
        return maxDuration;
    }

    /**
     * Sets max duration.
     *
     * @param maxDuration the max duration
     */
    public void setMaxDuration(Integer maxDuration) {
        this.maxDuration = maxDuration;
    }

    /**
     * Copy question count filter model.
     *
     * @return the question count filter model
     */
    public QuestionCountFilterModel copy() {
        QuestionCountFilterModel model = new QuestionCountFilterModel();

        model.setItemBankId(this.getItemBankId());
        model.setMandatoryIDs(this.getMandatoryIDs());
        model.setQuestionTypeID(this.getQuestionTypeID());
        model.setMinDifficulty(this.getMinDifficulty());
        model.setMaxDifficulty(this.getMaxDifficulty());
        model.setChapterIDs(this.getChapterIDs());
        model.setFieldcount(this.getFieldcount());
        model.setMaxDuration(this.getMaxDuration());
        model.setMinDuration(this.getMinDuration());
        model.setSubjective(this.getSubjective());

        return model;
    }
}
